set properties and initialize variables for each interpolation method
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=short), | intent(in) | :: | method | |||
type(IniList), | intent(in) | :: | ini | |||
type(grid_integer), | intent(in) | :: | mask |
SUBROUTINE SetSpecificProperties & ! ( method, ini, mask ) IMPLICIT NONE !Arguments with intent(in): INTEGER (KIND = short), INTENT(in) :: method TYPE (IniList) , INTENT(in) :: ini TYPE (grid_integer) , INTENT(in) :: mask !----------------------------end of declarations------------------------------- !set data specific for each interpolation method SELECT CASE (method) CASE (1) !thiessen CALL NewGrid (interpolatedMap (1), mask, 0.) CASE (2) !inverse distance CALL NewGrid (interpolatedMap (2), mask, 0.) !nearest-points IF (KeyIsPresent ('nearest-points', ini, & section = 'wind-speed') ) THEN neighbors = IniReadInt ('nearest-points', ini, & section = 'wind-speed') ELSE !nearest-points missing CALL Catch ('error', 'WindFlux', & 'nearest-points missing in meteo configuration file') END IF CASE (3) !kriging CALL NewGrid (interpolatedMap (3), mask, 0.) !nearest-points IF (KeyIsPresent ('nearest-points', ini, & section = 'wind-speed') ) THEN neighbors = IniReadInt ('nearest-points', ini, & section = 'wind-speed') CALL Catch ('info', 'WindFlux', 'neighbors set to: ', argument = ToString (neighbors) ) ELSE !nearest-points missing CALL Catch ('error', 'WindFlux', & 'nearest-points missing in meteo configuration file') END IF !kriging-variance IF (KeyIsPresent ('kriging-variance', ini, & section = 'wind-speed') ) THEN krige_var = IniReadInt ('kriging-variance', ini, & section = 'wind-speed') CALL Catch ('info', 'WindFlux', & 'kriging variance export set to ', argument = ToString(krige_var) ) ELSE !kriging-variance missing krige_var = 0 CALL Catch ('info', 'WindFlux', & 'kriging variance export set to default (0)') END IF !kriging-anisotropy IF (KeyIsPresent ('kriging-anisotropy', ini, & section = 'wind-speed') ) THEN krige_anisotropy = IniReadInt ('kriging-anisotropy', ini, & section = 'wind-speed') CALL Catch ('info', 'WindFlux', 'kriging anisotropy set to: ', argument = ToString (krige_anisotropy) ) ELSE !kriging-anisotropy missing krige_anisotropy = 0 CALL Catch ('info', 'WindFlux', & 'kriging anisotropy set to default (0)') END IF !kriging-variogram-model IF (KeyIsPresent ('kriging-variogram-model', ini, & section = 'wind-speed') ) THEN krige_varmodel = IniReadInt ('kriging-variogram-model', ini, & section = 'wind-speed') CALL Catch ('info', 'WindFlux', 'kriging variogram model set to: ', argument = ToString (krige_varmodel) ) IF (krige_varmodel == 0 ) krige_varmodel = 5 !automatic fitting ELSE !kriging-variogram-model krige_varmodel = 2 CALL Catch ('info', 'WindFlux', & 'kriging variogram model set to default (2 exponential)') END IF !kriging-lags IF (KeyIsPresent ('kriging-lags', ini, & section = 'wind-speed') ) THEN krige_lags = IniReadInt ('kriging-lags', ini, & section = 'wind-speed') IF (krige_lags == 0) krige_lags = 15 CALL Catch ('info', 'WindFlux', 'kriging lags set to: ', argument = ToString (krige_lags) ) ELSE !kriging-variogram-model krige_lags = 15 CALL Catch ('info', 'WindFlux', & 'kriging lags set to default (15)') END IF !kriging-maxlag IF (KeyIsPresent ('kriging-maxlag', ini, & section = 'wind-speed') ) THEN krige_maxlag = IniReadInt ('kriging-maxlag', ini, & section = 'wind-speed') CALL Catch ('info', 'WindFlux', 'kriging max lag set to: ', argument = ToString (krige_maxlag) ) ELSE !kriging-maxlag missing krige_maxlag = 0 CALL Catch ('error', 'WindFlux', & 'kriging max lag set to default (0)') END IF CASE (4) !micromet CALL NewGrid (interpolatedMap (4), mask, 0.) CASE (5) !gonzalez CALL NewGrid (interpolatedMap (5), mask, 0.) END SELECT RETURN END SUBROUTINE SetSpecificProperties